package pickbook.model;

//희망도서 서비스
public interface BuyBookService {

	/**
	 * method : getSearchListByFactor
	 * comment : 검색어(factor)에 해당하는 책 정보를 찾는 메서드
	 * 
	 * @param factor
	 * @param pageNo
	 * @return
	 * 
	 * @author 이형철
	 * @date 2014-07-04
	 */
	public ListVO getSearchListByFactor(String factor, String pageNo);

	/**
	 * method : getSearchListByLocationUniv
	 * comment : 위치(location)과 대학교(univ)에 해당하는 책 정보를 찾는 메서드
	 * 
	 * @param location
	 * @param univ
	 * @param pageNo
	 * @return
	 * 
	 * @author 이형철
	 * @date 2014-07-04
	 */
	public ListVO getSearchListByLocationUniv(String location, String univ, String pageNo);

	/**
	 * method : insertBook
	 * comment : 희망도서 추가 메서드
	 * 
	 * @param bbvo
	 * @return
	 * 
	 * @author 제형규, 김병각
	 * @date 2014-07-03
	 */
	public void insertBook(BuyBookVO bbvo);//redirect
	
	/**
	 * method : updateBook
	 * comment : 나의 희망도서 수정하는 메서드
	 * 
	 * @param bbvo
	 * @return
	 * 
	 * @author 제형규, 김병각
	 * @date 2014-07-03 
	 */
	public void updateBook(BuyBookVO bbvo);
	
	/**
	 * method : deleteBook
	 * comment : 나의 희망도서 삭제하는 메서드
	 * 
	 * @param no
	 * @return
	 * 
	 * @author 제형규, 김병각
	 * @date 2014-07-03 
	 */
	public void deleteBook(int no);
	
	/**
	 * method : findByBookNo
	 * comment : 책 번호에 해당하는 도서정보 조회 메서드
	 * 
	 * @param no
	 * @return
	 * 
	 * @author 제형규, 김병각
	 * @date 2014-07-03
	 */
	public BuyBookVO findByBookNo(int no);
	
	/**
	 * method : getRecentBookList
	 * comment : pageNo를 통해 최신 순으로 희망도서 리스트를 받아오는 메서드
	 * 
	 * @param pageNo
	 * @return
	 * 
	 * @author 제형규, 이형철
	 * @date 2014-07-02
	 */
	public ListVO getRecentBookList(String pageNo);
	
	/**
	 * method : getMyBuyBookList
	 * comment : pageNo와 id를 통해 최신 순으로 나의 희망도서 리스트를 받아오는 메서드
	 * 
	 * @param pageNo
	 * @param id
	 * @return
	 * 
	 * @author 이형철
	 * @date 2014-07-03
	 */
	public ListVO getMyBuyBookList(String pageNo, String id);

	/**
	 * method : updateVisible
	 * comment : no와 bVisible으로 나의 희망도서 공개 여부를 업데이트하는 메서드
	 * 
	 * @param no
	 * @param bVisible
	 * @return
	 * 
	 * @author 이형철
	 * @date 2014-07-03
	 */
	public String updateVisible(int no, int bVisible);
	
}
